/**
 * by woon 20160702
 */
var deviceone = require("deviceone");
var page = deviceone.sm("do_Page");
var camera = deviceone.sm("do_Camera");
var album = deviceone.sm("do_Album");
var rootView = deviceone.ui("$");//当前页面根
var nf = deviceone.sm("do_Notification");
var urlCommon = require("url/common");

var vsMaxCount = 1;
var vsWidth = 600;
var vsHeight = -1;
var vsQuality =50;
var vsIscut = false;

/**
 * 拍照或选择图片后，再裁剪
 * @callBack -> 回调函数，返回需要上传的数组文件
 */
module.exports.imgCut = function(callBack){
	selectImg(1,600,-1,50,true,callBack);
};

module.exports.banCut = function(callBack){
	selectImg(1,640,-1,75,false,callBack);
}

/**
 * 拍照或选择图片后，再裁剪
 * @callBack -> 回调函数，返回需要上传的数组文件
 */
module.exports.imgCutWH = function(callBack,width,height){
	selectImg(1,width,height,50,true,callBack);
};

/**
 * 拍照或选择多张图片
 * @maxCount {Nnumber} 最多选择图片数量（对拍照无效）
 * @callBack -> 回调函数，返回需要上传的数组文件
 */
module.exports.imgMulti = function(maxCount,callBack){
	selectImg(maxCount,600,-1,50,false,callBack);
};
/**
 * @maxCount {Nnumber} 最多选择图片数量（对拍照无效）
 * @width {Nnumber} 当width=-1,代表以height为基准 (保持原图横纵比)缩放;
 * @height {Nnumber} 当height=-1,代表以width为基准 (保持原图横纵比)缩放;
 * @quality {Number} 清晰度{0-100},缺省是100表示原始的图片质量，质量越小越模糊，但是图片的文件大小越小
 * @iscut {Boolean} -> 是否裁剪当前拍摄的图片.
 */
var selectImg = function(maxCount,width,height,quality,iscut,callBack){
	vsIscut=false;
	if(maxCount && maxCount!=null && maxCount!=="undefined" && maxCount>0 && maxCount<=10){
		vsMaxCount = maxCount;
	}
	if(width && width!=null && width!=="undefined" && width>=-1 && width<=1080){
		vsWidth = width;
	}
	if(height && height!=null && height!=="undefined" && height>=-1 && height<=1080){
		vsHeight = height;
	}
	if(quality && quality!=null && quality!=="undefined" && quality>0 && quality<=100){
		vsQuality = quality;
	}
	if(iscut!=null && iscut!=="undefined" && iscut==true){
		vsIscut =true;
	}
	page.hideKeyboard();
	page.remove("popCameraMenu");
	var _popCameraMenuUi = rootView.add("popCameraMenu", "source://view/public/imgselect/imgselect.ui", 0, 0);	
	var _cameraBtn = deviceone.ui(_popCameraMenuUi+".btnCamera");
	var _albumBtn = deviceone.ui(_popCameraMenuUi+".btnAlbum");
	var _maskbg = deviceone.ui(_popCameraMenuUi+".maskbg");
	
	_cameraBtn.on("touch", function() {
		_maskbg.visible = false;
		/**
		 * @data {String} -> 返回当前保存的路径(data://)一个图片本地路径
		 * @imgList:js数组，返回到回调函数
		 */
		camera.capture(vsWidth, vsHeight, vsQuality, vsIscut, function(data, e) {
			if(callBack && callBack!=null && callBack!=="undefined"){
				var imgList = [];
				imgList.push(data);
				callBack(imgList);
			}			
		})
	});
	_albumBtn.on("touch", function() {
		_maskbg.visible = false;
		/**
		 * @data：js数组，类似["data://temp/do_Album/random1.png","data://temp/do_Album/random1.png",...]
		 */
		album.select(vsMaxCount, vsWidth, vsHeight, vsQuality, vsIscut, function(data, e) {
			if(callBack && callBack!=null && callBack!=="undefined"){
				callBack(data);
			}
		})
	});
};
module.exports.selectImg = selectImg;